/***************************************************
> Copyright (C) 2024 ==QWZL== All rights reserved.
> File Name: safety_man.h
> Author: nan
> Mail:w1468950374@163.com 
> Created Time: 2024年11月18日 星期一 15时35分40秒
***************************************************/

#ifndef SAFETY_MAN_H
#define SAFETY_MAN_H

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <time.h>
#include <stdint.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include "trans_inf.pb-c.h"
#include "sys_log.h"


// 宏定义
#define MAX_HISTORY 100   // 最大历史记录数量
#define MAX_TRIES 3       // 最大登录尝试次数

//安全员信息结构体
typedef struct personnel_information
{
    char accounts[20];
    char password[20];
}Info;


// 采集环境数据结构
typedef struct 
{
    float CH4;           // 甲烷浓度
    float CO;            // 一氧化碳浓度
    float CO2;           // 二氧化碳浓度
    float O2;            // 氧气浓度
    float atmosphere;    // 大气压
    float temperature;   // 温度
    float RH;            // 湿度
    char date[50];          // 采集时间
    char collecter[20];     // 采集人员
    char location[50];  // 采集点位置
    char judge_result[500]; // 判断结果
} DATA;


// 函数声明
int user_login(char *accounts, char *password);     // 用户登录验证
int create_socket();                                // 创建套接字
int send_info(char *accounts, char *password);      // 发送账号和密码到服务器并接受服务器回应
int send_data(char *data_buf,unsigned long l);                      // 发送采集数据
int recv_data();                                    // 接收数据
int equipment_menu();                               // 设备功能菜单
int data_collection(char *str,unsigned long *l);                    // 数据采集并probuf组包
int alarm_setting(DATA *data);                      // 报警设置


#endif // SAFETY_MAN_H
